import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace CmtNotifyMessageApi {
  /** 消息信息 */
  export interface NotifyMessage {
    id?: number; // ID
    communityId?: number; // 社区ID
    merchantId?: number; // 商户ID
    userId?: number; // 接收会员ID
    messageType?: number; // 消息类型：1系统通知 2活动消息 3服务消息 4评论回复
    title?: string; // 标题
    content?: string; // 内容
    linkType?: string; // 链接类型
    linkId?: number; // 链接ID
    isRead?: number; // 是否已读：0否 1是
    readTime?: string; // 阅读时间
    createTime?: string; // 创建时间
  }
}

/** 查询消息分页 */
export function getNotifyMessagePage(params: PageParam) {
  return requestClient.get<PageResult<CmtNotifyMessageApi.NotifyMessage>>(
    '/cmt/notify-message/page',
    { params },
  );
}

/** 查询消息详情 */
export function getNotifyMessage(id: number) {
  return requestClient.get<CmtNotifyMessageApi.NotifyMessage>(
    `/cmt/notify-message/get?id=${id}`,
  );
}

/** 新增消息 */
export function createNotifyMessage(data: CmtNotifyMessageApi.NotifyMessage) {
  return requestClient.post('/cmt/notify-message/create', data);
}

/** 修改消息 */
export function updateNotifyMessage(data: CmtNotifyMessageApi.NotifyMessage) {
  return requestClient.put('/cmt/notify-message/update', data);
}

/** 删除消息 */
export function deleteNotifyMessage(id: number) {
  return requestClient.delete(`/cmt/notify-message/delete?id=${id}`);
}

/** 批量删除消息 */
export function deleteNotifyMessageList(ids: number[]) {
  return requestClient.delete(
    `/cmt/notify-message/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出消息 */
export function exportNotifyMessage(params: any) {
  return requestClient.download('/cmt/notify-message/export-excel', { params });
}
